package isg3;
import ficheros.*;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Array;
import java.sql.Date;

public class GestionDeComentarios {
	private BufferedReader bf;
	public String bufer;
	
	/*Esta función recibe un comentario, del cual coje el mensaje
	 * recorre el fichero de la lista negra de palabras y las sustituye
	 * en el mensaje si las encontrara, 
	 * 
	 *  en la linea mensaje=mensaje.replaceAll(aux, "*** ") asigno el valor 
	 *  de la funcion replace al mensaje xq si no, no seria capaz de recordar
	 *  la cadena resultante de esa operación*/
	
	public Object revisarComentario(Comentario com) throws IOException{
		abreFichero();
		String mensaje = com.getMensaje();
		String mensajeOriginal=mensaje;
		char[] mensajeArray = mensajeOriginal.toCharArray();
		bufer=bf.readLine();
		int existePalabras;
		mensaje=mensaje.toUpperCase();
		while (bufer!=null) {
			bufer = bufer.toUpperCase();
			existePalabras= mensaje.indexOf(bufer);
			
			while(existePalabras!=-1){
			mensaje = mensaje.replace(bufer, cadenaAsterisco(bufer.length()));
			 existePalabras = mensaje.indexOf(bufer);
			}
			  bufer = bf.readLine();
		}
		char[] mensajeModi = mensaje.toCharArray();
		for(int j=0; j< mensajeModi.length;j++){
			if((mensajeModi[j]=='*')&&j<=mensajeArray.length){
				mensajeArray[j]='*';
			}
		}
		

		
		mensajeOriginal= arrayToString(mensajeArray);
		
		
		com.setMensaje(mensajeOriginal);
		return mensajeOriginal;
	}

	
	
	public String cadenaAsterisco(int n){
		String cadena="*";
		for (int i=1;i<n;i++){
			cadena= cadena + "*";
		}
		return cadena;
		
	}
	
	public String arrayToString(char[] n){
	String cadena="";
		for(int i=0;i<n.length;i++){
		cadena= cadena+n[i];
		}
		return cadena;
	}
	
	
	
	
	
	/* Esta función se encarga de abrir el fichero, en caso de que 
	 * el fichero no exista lanza la excepción FileNotFoundException
	 * en caso contrario creará el buffer de lectura*/
	
	public void abreFichero()  throws FileNotFoundException{
		FileReader fr = new FileReader("../adiosalacrisis/src/ficheros/listaNegra"); //directorio provisional
		bf = new BufferedReader(fr);
		System.out.println();
	}
	
	public void borraComentario(){
		//TODO
		//no la he realizado por que esta funcion es básicamente una consulta en la BD
	}
	/*He dividido las votaciones en dos, positivo o negativo, puesto que 
	 * a la hora de llevarlo a cabo será mas sencillo */
	public void votarComentarioPositivo(Comentario com ){
		int n=com.getVotoPositivo();
		n++;
		com.setVotoPositivo(n);
	}
	
	public void votarComentarioNegativo(Comentario com){
		int n=com.getVotoNegativo();
		n--;
		com.setVotoNegativo(n);	
	}
}
